/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/8/27 0:35
 * Thread 的常见属性 ：
 *        1.ID  ---- getId();
 *        2.名称  ---- getName();
 *        3.状态  ---- getState();
 *        4.优先级  ---- getPriority();
 *        5.是否是后台线程  ---- isDaemon();
 *        6.是否存活  ---- isAlive();
 *        7.是否被中断  ---- isInterrupted();
 *
 *  ps:1.ID是线程的唯一标识，不同线程不会重复
 *     2.名称是各种调试工具用到
 *     3.状态表示线程当前所处的一个情况
 *     4.优先级高的线程理论更容易被调度到
 *     5.关于后台线程：JVM会在一个进程的所有非后台线程结束后，才会结束运行
 *     6.是否存活：run方法是否运行结束
 *              创建一个Thread对象后，调用start方法，在操作系统产生一个PCB，
 *              当run方法代码段结束后，PCB销毁，但是对象仍然存在
 */
public class ThreadDemo9 {
    public static void main(String[] args) {
        Thread t =new Thread(new Runnable() {
            @Override
            public void run() {
                while (true){
                    //打印当前线程的名字
                    //Thread.currentThread()这个静态方法，获取到当前线程实例
                    //那个线程调用的这个方法，就能获取到对应的实例
                    System.out.println(Thread.currentThread().getName());
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        },"MyThread");

        t.start();

        //在这里也打印线程的常见属性
        System.out.println(" ID : "+t.getId());
        System.out.println(" name : "+t.getName());
        System.out.println(" state : "+t.getState());
        System.out.println(" Priority : "+t.getPriority());
        System.out.println(" isDaemon : "+t.isDaemon());
        System.out.println(" isInterrupted : "+t.isInterrupted());
        System.out.println(" isAlive : "+t.isAlive());

    }
}
